/*
 * Copyright © 2018 CODESTD.COM Inc. All rights reserved.
 */
package com.codestd.security.shiro.listener;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;
import org.apache.shiro.session.SessionListener;

/**
 * session 监听，用于处理Session创建、关闭、过期等事件。
 * <p>可以借助此监听在Session关闭、Session过期时，立即清除缓存中的用户信息。</p>
 *
 * @author jaune
 * @since 1.0.0
 */
public class ShiroSessionListener implements SessionListener {

    @Override
    public void onStart(Session session) {

    }

    @Override
    public void onStop(Session session) {
        System.out.println("Stop Session");
        this.clearCache(session);
    }

    @Override
    public void onExpiration(Session session) {
        System.out.println("Expiration Session");
        this.clearCache(session);
    }

    /**
     * 此处清除缓存内的角色、权限信息
     */
    private void clearCache(Session session) {
    }
}
